---
sidebar_position: 3.3
description: 客户端负载均衡的工具
---

import Highlight from "@site/src/components/Highlight";

# Feign负载均衡
## 简介
Feign是声明式的web service客户端，它让微服务之间的调用变得更简单了，类似controller调用service。SpringCloud集成了Ribbon和Eureka，可在使用Feign时提供负载均衡的http客户端。<br/>
只需要创建一个接口，然后添加注释即可！<br/>
Feign,主要是社区，大家都习惯面向接口编程。这个是很多开发人员的规范，调用微服务访问的两种方法：<br/>
1. 微服务名字【ribbon】
2. 接口和注解【feign】
## Feign的用途
* Feign旨在使编写Java Http客户端变得更容易。
* 前面在使用Ribbon+RestTemplate时，利用RestTemplate对Http请求的封装处理，形成了一套模板化的调用方法。但是在实际开发中，由于对服务依赖的调用可能不止一处，往往一个接口会被多处调用，所有通常都会针对每个微服务
自行封装一些客户端类来包装这些依赖服务的调用。所以，Feign在此基础上做了进一步的封装，由他来帮助我们定义和实现依赖服务接口的定义，<Highlight color="#1877F2">在Feign的实现下，我们只需要创建一个接口并使用注解的方式来配置它（类似于以前Dao接口上标注Mapper注解，现在是一个微服务接口上面标注一个Feign注解即可。）</Highlight>即可完成对服务提供方的接口绑定，
简化了使用Spring Cloud Ribbon时，自动封装服务调用客户端的开发量。
## Feign集成了Ribbon
* 利用Ribbon维护了微服务的服务列表信息，并且通过轮询实现了客户端的负载均衡，而与Ribbon不同的是，通过Feign只需要定义服务绑定接口且以声明式的方法，优雅而且简单的实现了服务调用。
## Feign 的使用步骤